package com.xcm.service;

import com.xcm.model.vo.DeviceInfoListVO;
import com.xcm.model.vo.FirmWareListVO;
import com.xcm.page.PageInfo;

import java.util.List;

/**
 * @Description 固件管理
 * @Author HanQinrui
 * @Date 2018/5/7 9:58
 * @Version 1.0
 */
public interface FirmWareService {
	/**
	 * 获取固件分页列表
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	PageInfo<FirmWareListVO> listByPage(Integer pageNum, Integer pageSize);

	/**
	 * 获取更新固件下终端列表
	 * @param sysVersion 固件版本号
	 * @param deviceStatus 在线状态 0.在线; 1.离线
	 * @param deviceModel 机型
	 * @param groupCode 分组编码
	 * @param province 省
	 * @param city 市
	 * @param area 区
	 * @param deviceUpgradeId 固件ID
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	PageInfo<DeviceInfoListVO> updateFirmWareListByPage(String sysVersion, String deviceStatus, String deviceModel, String groupCode,
														String province, String city, String area, String deviceUpgradeId,
														Integer pageNum, Integer pageSize);

	/**
	 * 查询所有固件版本号
	 * @return
	 */
	List<String> listAllFirmWareVersionCode();

	/**
	 * 根据查询条件获取在线终端总数
	 * @param sysVersion 固件版本号
	 * @param deviceModel 机型
	 * @param groupCode 分组编码
	 * @param province 省
	 * @param city 市
	 * @param area 区
	 * @return
	 */
    Long getFirmWareDeviceOnlineCount(String sysVersion, String deviceModel, String groupCode, String province, String city, String area);

	/**
	 * 根据查询条件获取离线终端总数
	 * @param sysVersion 固件版本号
	 * @param deviceModel 机型
	 * @param groupCode 分组编码
	 * @param province 省
	 * @param city 市
	 * @param area 区
	 * @return
	 */
	Long getFirmWareDeviceOfflineCount(String sysVersion, String deviceModel, String groupCode, String province, String city, String area);
}
